const express = require("express");
const morgan = require("morgan");
const session = require("express-session");
const path = require("path");
const userRouter = require("./routes/userRouter");
const rolesRouter = require("./routes/rolesRouter");
const accessRouter = require("./routes/accessRouter");
const jobsRouter = require("./routes/jobsRouter");
const doctorRouter = require("./routes/doctorRouter");
const teamRouter = require("./routes/teamRouter");
const servicePackRouter = require("./routes/servicePackRouter");
const residentsRouter = require("./routes/residentsRouter");
const menuRouter = require("./routes/menuRouter");
const app = express();

app.use(morgan("dev"));
// 中间件的写法，中间件，就是实现一个功能 的函数的模块。
// 函数有request, response, next(),一个中间件中，必须要调用next(),才可以让请求的数据，继续向下传递。
// app.all("*", function (req, res, next) {
  // res.header("Access-Control-Allow-Origin", "*");
  // res.header(
    // "Access-Control-Allow-Headers",
    // "Content-Type,Content-Length, Authorization, Accept,X-Requested-With"
  // );
  // res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
  // res.header("X-Powered-By", " 3.2.1");
  // if (req.method == "OPTIONS") res.send(200);
  // /*让options请求快速返回*/
  // else next();
// });
app.use(
  session({
    name: "demow296", //cookie的name,
    secret: "guoxinan", // 密钥
    cookie: { maxAge: 1000 * 60 * 60 }, // 设置session和cookie的失效时间,单位毫秒
    rolling: true, //更新session中cookie的失效时间,默认是false
    resave: true, //重新保存
  })
);
// app.use(function (req, res, next) {
//   // console.log(req.session);  // 没有配置之前是Undefined,之后是 Session {cookie: { maxage,...}}
//   // console.log("我自己写的中间件");
//   // next()
//   // 以下代码，判决用户有没有权限访问除登录页面以外的其它HTML页面
//   if (req.session.user) {
//     // 登录了的
//     next()

//   } else {
//     // 没有登录
//     console.log("req.url=>",req.url,/\.html/.test(req.url))
//     if(req.url === "/"  || req.url === "/index.html"){
//       // 没有登录时，只要是访问首页，就允许访问
//       next();
//     }else if(/\.html/.test(req.url)){
//       // 如果访问的是除首页以外的其它HTML页面，就重定向到登录页面。
//       res.redirect("/index.html")
//     }else{
//       next();
//     }

//   }
// })
app.use(express.urlencoded({ limit: "10mb", extended: true }));
app.use(express.json({ limit: "10mb" }));
app.use(express.static(__dirname + "/public"));
// 配置EJS模板
app.set("views", path.join(__dirname, "views")); // 设置EJS模板文件的路径 ，位置
app.set("view engine", "ejs"); //启用EJS模板引擎。
// 路由
app.use("/", userRouter);
app.use(rolesRouter); // 默认就挡截以"/"开头的url.
app.use(accessRouter);
app.use(jobsRouter);
app.use(doctorRouter);
app.use(teamRouter);
app.use(servicePackRouter);
app.use(residentsRouter);
app.use(menuRouter)
// app.use("*", function(req, res){
	// 404
// })
app.listen(8080, () => {
  console.log(`请通过 http://127.0.0.1 访问页面`);
  console.log(__dirname)
  console.log(__filename)
});
